package pta04;

import java.util.Arrays;

public class ArrayIntegerStack implements IntegerStack {
	private Integer[] arr;
	private int top=0;
	
	public ArrayIntegerStack(int capacity){
		arr = new Integer[capacity];
	}
	@Override
	public String toString() {
		return Arrays.toString(arr);
	}
	
	@Override
	public Integer push(Integer item) {
		if(item==null)
			return null;
		if(top==arr.length)
			return null;
		arr[top++]=item;
		return null;
	}

	@Override
	public Integer pop() {
		//出栈，如果为空，则返回null。出栈时只移动栈顶指针，相应位置不置为null
		if(top>0&&top<arr.length)
		{
			int n=arr[top--];
			return n;
		}
		else
			return null;
	}

	@Override
	public Integer peek() {
		 //获得栈顶元素，如果为空，则返回null.
		if(top>0&&top<arr.length)
			return arr[top-1];
		else
			return null;
	}

	@Override
	public boolean empty() {
		//如果为空返回true
		return top==0;
	}

	@Override
	public int size() {
		//返回栈中元素个数
		return top;
	}

}
